package pe.edu.upc.e41a.javasoft.dao;

import java.util.List;
import java.util.Set;


import javax.persistence.TypedQuery;

import pe.edu.upc.e41a.javasoft.domain.TipoPersona;
import pe.edu.upc.e41a.javasoft.domain.Usuario;

public interface TipoPersonaDao {

	public void saveTipoPersona(TipoPersona tipoPersona);

	public void updateTipoPersona(TipoPersona tipoPersona);

	public void deleteTipoPersona(TipoPersona tipoPersona);
	
	///////////////////////////////////////////////////////
	public  long countTipoPersonas();
	public  List<TipoPersona> findAllTipoPersonas();
	public  TipoPersona findTipoPersona(Integer codigo);
	public  List<TipoPersona> findTipoPersonaEntries(int firstResult, int maxResults);
	
	public  TypedQuery<TipoPersona> findTipoPersonasByDescripcionEquals(String descripcion) ;
    public  TypedQuery<TipoPersona> findTipoPersonasByDescripcionIsNotNull();
    public  TypedQuery<TipoPersona> findTipoPersonasByDescripcionIsNull();
    public  TypedQuery<TipoPersona> findTipoPersonasByDescripcionLike(String descripcion);
    public  TypedQuery<TipoPersona> findTipoPersonasByDescripcionNotEquals(String descripcion);
    public  TypedQuery<TipoPersona> findTipoPersonasByUsuarios(Set<Usuario> usuarios);
}